<?php

abstract class Action
{
	protected function doAjaxError()
	{
		$this->setOutput('0');
		$this->finish();
		
	} // end function
	
	// Save an action
	protected function act($m, $data, $type)
	{
		$aM = $m->getModel('actions');
		$aM->add($data, $type);
		
	} // end function
	
	// Key
	protected function setNewKey()
	{
		$seed = mt_rand(0, 10000000000);
		
		$this->setSession('loop_seed', $seed);
		$this->addOutput($seed);
		
		return $seed;
		
	} // end function
	
	protected function checkKey($k)
	{
		return ($this->getSession('loop_seed') == $k);
		
	} // end function
	
	// Check input ($_GET)
	protected function getInput($k)
	{
		$io = &io::getInstance();
		
		if (isset($io->get[$k]))
			return stripslashes($io->get[$k]);
		else
			return false;
			
	} // end function
	
	// Get and set session
	protected function getSession($k)
	{
		$io = &io::getInstance();
		
		if (isset($io->session[$k]))
			return $io->session[$k];
		else
			return false;
			
	} // end function
	
	protected function setSession($k, $v)
	{
		$io = &io::getInstance();
		
		$io->session[$k] = $v;
		
	} // end function
	
	// Adds output to the end on a new line (default), or without.
	protected function addOutput($o, $skip_newLine = false)
	{
		$io = &io::getInstance();
		
		if (!empty($io->output) && !$skip_newLine)
			$io->output .= "\n";
		
		$io->output .= $o;
		
	} // end function
	
	// Overwrites all output!
	protected function setOutput($o)
	{
		$io = &io::getInstance();
		
		$io->output = $o;
		
	} // end function
	
	// Exit the action.
	protected function finish()
	{
		$io = &io::getInstance();
		
		$io->save();
		
		die($io->output);
		
		
	} // end function
	
	protected function getModelCls($m)
	{
		$io = &io::getInstance();
		
		if (isset($io->model[$m]))
			return $io->model[$m];
		else
			return false;
			
	} // end function
	
	protected function setModelCls($m, $c)
	{
		$io = &io::getInstance();
		
		if (isset($io->model[$m]))
			return;
		else
			$io->model[$m] = $c;
			
	} // end function
	
} // end class

?>